home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Collections: Purity
/
Purity #23 (1994-02-10)(Diesel)(DE)[WB].zip
/
Purity #23 (1994-02-10)(Diesel)(DE)[WB].adf
/
Tools
/
ToolGad.p
< prev
next >
Wrap
Text File
|
1994-01-20
|
10KB
|
285 lines
UNIT ToolGad;
{$Projekt MyTools}
INTERFACE
USES Intuition;
PROCEDURE UniPrint(VAR win:p_Window; txt:STRING; c1,c2,x,y:INTEGER; shadow,
center : BOOLEAN; tattr:p_TextAttr);
PROCEDURE GetRadioButtonImage(VAR RBImage1, RBImage2 : Image);
PROCEDURE GetCheckBoxImage(VAR CBImage1, CBImage2 : Image);
PROCEDURE GetCycleImage(VAR CycleImage : Image);
PROCEDURE umrandung(wo:p_window,c1,c2,x,y,b,h:INTEGER);
PROCEDURE gbord(wo:p_window,was:p_gadget);
PROCEDURE zeichnetext(c1,c2:SHORT,wo:p_window,x,y:INTEGER,text:string);
PROCEDURE uline(wo:p_window,was:p_gadget,c:CHAR);
PROCEDURE gbu(wo:p_window,was:p_gadget,c:CHAR);
PROCEDURE stringumrandung(VAR wo:p_Window; gad:p_Gadget; c1,c2:Word);
PROCEDURE RefreshGadget(VAR wo:p_Window; was:p_Gadget; req:p_Requester);
IMPLEMENTATION
TYPE
ImageFeld = ARRAY[1..22] OF LONG;
BImageFeld = ARRAY[1..18] OF LONG;
wImageFeld = ARRAY[1..16] OF LONG;
VAR
Image1,Image2,wImage : Image;
ImageMapPtr1,
ImageMapPtr2 : ^ImageFeld;
BImage1,BImage2 : Image;
Buttonptr1,
Buttonptr2 : ^BImageFeld;
wImageMapPtr : ^wImageFeld;
{ "Die" Universal-Print-Prozedur schlechthin !! }
PROCEDURE UniPrint;
VAR
it,it1 : IntuiText;
l : LONG;
BEGIN
it := IntuiText(c1,0,JAM1,1,1,tattr,txt,^it1);
it1 := IntuiText(c2,0,JAM1,0,0,tattr,txt,NIL);
l := IntuiTextLength(^it)+1;
IF center THEN x := (win^.Width-l) DIV 2;
IF shadow THEN PrintIText(win^.RPort,^it,x,y)
ELSE PrintIText(win^.RPort,^it1,x,y);
END;
PROCEDURE Init_Image;
BEGIN
wImageMapPtr:=PTR(ALLOC_MEM(SizeOf(wImageFeld),2));
wImageMapPtr^:=wImageFeld(%00000111111100000000000000000000,
%00001100000110000010000000000000,
%00001100011111100010000000000000,
%00001100001111000010000000000000,
%00001100000110000010000000000000,
%00001100000000000010000000000000,
%00001100000110000010000000000000,
%00000111111100000010000000000000,
{ 2. Bitplane } %00000000000000000000000000000000,
%00000000000000000001000000000000,
%00000000000000000001000000000000,
%00000000000000000001000000000000,
%00000000000000000001000000000000,
%00000000000000000001000000000000,
%00000000000000000001000000000000,
%00000000000000000001000000000000);
wimage:=IMAGE(2,1,21,8,2,wImageMapPtr,3,0,NIL);
Buttonptr1:=PTR(ALLOC_MEM(SizeOf(BImageFeld),2));
Buttonptr1^:=BImageFeld(%00000000000000100000000000000000,
%00000000000000110000000000000000,
%00000000000000011000000000000000,
%00000000000000011000000000000000,
%00000000000000011000000000000000,
%00000000000000011000000000000000,
%00000000000000011000000000000000,
%00000000000000110000000000000000,
%00011111111111100000000000000000,
{ 2. Bitplane } %00111111111111000000000000000000,
%01100000000000000000000000000000,
%11000000000000000000000000000000,
%11000000000000000000000000000000,
%11000000000000000000000000000000,
%11000000000000000000000000000000,
%11000000000000000000000000000000,
%01100000000000000000000000000000,
%00100000000000000000000000000000);
Buttonptr2:=PTR(ALLOC_MEM(SizeOf(BImageFeld),2));
Buttonptr2^:=BImageFeld(%00111111111111000000000000000000,
%01100000000000000000000000000000,
%11000111111100000000000000000000,
%11001111111110000000000000000000,
%11001111111110000000000000000000,
%11001111111110000000000000000000,
%11000111111100000000000000000000,
%01100000000000000000000000000000,
%00100000000000000000000000000000,
{ 2. Bitplane } %00000000000000100000000000000000,
%00000000000000110000000000000000,
%00000111111100011000000000000000,
%00001111111110011000000000000000,
%00001111111110011000000000000000,
%00001111111110011000000000000000,
%00000111111100011000000000000000,
%00000000000000110000000000000000,
%00011111111111100000000000000000);
BImage1:=IMAGE(0,0,17,9,2,Buttonptr1,3,0,NIL);
BImage2:=IMAGE(0,0,17,9,2,Buttonptr2,3,0,NIL);
ImageMapPtr1:=PTR(ALLOC_MEM(SizeOf(ImageFeld),2));
ImageMapPtr1^:=ImageFeld(%00000000000000000000000001000000,
%00000000000000000000000011000000,
%00000000000000000000000011000000,
%00000000000000000000000011000000,
%00000000000000000000000011000000,
%00000000000000000000000011000000,
%00000000000000000000000011000000,
%00000000000000000000000011000000,
%00000000000000000000000011000000,
%00000000000000000000000011000000,
%01111111111111111111111111000000,
{ 2. Bitplane } %11111111111111111111111110000000,
%11000000000000000000000000000000,
%11000000000000000000000000000000,
%11000000000000000000000000000000,
%11000000000000000000000000000000,
%11000000000000000000000000000000,
%11000000000000000000000000000000,
%11000000000000000000000000000000,
%11000000000000000000000000000000,
%11000000000000000000000000000000,
%10000000000000000000000000000000);
ImageMapPtr2:=PTR(ALLOC_MEM(SizeOf(ImageFeld),2));
ImageMapPtr2^:=ImageFeld(%00000000000000000000000001000000,
%00000000000000000000000011000000,
%00000000000000000111000011000000,
%00000000000000001100000011000000,
%00000000000000011000000011000000,
%00000001110000110000000011000000,
%00000000111001100000000011000000,
%00000000011111000000000011000000,
%00000000001110000000000011000000,
%00000000000000000000000011000000,
%01111111111111111111111111000000,
{ 2. Bitplane } %11111111111111111111111110000000,
%11000000000000000000000000000000,
%11000000000000000000000000000000,
%11000000000000000000000000000000,
%11000000000000000000000000000000,
%11000000000000000000000000000000,
%11000000000000000000000000000000,
%11000000000000000000000000000000,
%11000000000000000000000000000000,
%11000000000000000000000000000000,
%10000000000000000000000000000000);
image1:=IMAGE(0,0,26,11,2,ImageMapPtr1,3,0,NIL);
image2:=IMAGE(0,0,26,11,2,ImageMapPtr2,3,0,NIL);
END;
PROCEDURE GetRadioButtonImage;
BEGIN
RBImage1 := BImage1;
RBImage2 := BImage2;
END;
PROCEDURE GetCheckBoxImage;
BEGIN
CBImage1 := Image1;
CBImage2 := Image2;
END;
PROCEDURE GetCycleImage;
BEGIN
CycleImage := wImage;
END;
PROCEDURE umrandung;
TYPE
umrandungstyp=ARRAY[0..9] OF INTEGER;
VAR
Feld1,feld2:umrandungstyp;
border1,border2:BORDER;
BEGIN
feld1:=umrandungstyp(1,1,1,h-2,0,h-1,0,0,b-2,0);
feld2:=umrandungstyp(b-2,h-2,b-2,1,b-1,0,b-1,h-1,1,h-1);
Border1:=Border(x,y,c1,0,0,5,^Feld1,^Border2);
Border2:=Border(x,y,c2,0,0,5,^Feld2,Nil);
DrawBorder(wo^.rport,^Border1,0,0);
END;
PROCEDURE gbord;
BEGIN
umrandung(wo,2,1,was^.Leftedge,was^.Topedge,was^.Width,was^.height);
END;
PROCEDURE zeichnetext;
VAR
it1,it2:INTUITEXT;STATIC;
BEGIN
it1:=INTUITEXT(c1,0,JAM2,1,1,NIL,text,^it2);
it2:=INTUITEXT(c2,0,0,0,0,NIL,text,NIL );
PRINTITEXT(wo^.rport,^it1,x,y);
END;
PROCEDURE uline;
VAR
it:intuitext;STATIC;
x,y:LONG;STATIC;
stelle:INTEGER;
BEGIN
IF was^.Gadgettext<> NIL THEN
BEGIN
stelle:=POS(c,was^.gadgettext^.itext);
If stelle>0 THEN
BEGIN
stelle:=stelle-1;
x:=was^.Gadgettext^.leftedge+was^.Leftedge+8*stelle;
y:=was^.Gadgettext^.topedge+was^.Topedge+1;
it:=INTUITEXT(1,0,0,0,0,NIL,'_',NIL );
PRINTITEXT(wo^.rport,^it,x,y);
END;
END;
END;
PROCEDURE gbu;
BEGIN
gbord(wo,was);
uline(wo,was,c);
END;
PROCEDURE stringumrandung;
VAR
x,y,b,h : INTEGER;
BEGIN
x := gad^.LeftEdge - 3;
y := gad^.TopEdge - 3;
b := gad^.Width + 3;
h := gad^.Height + 1;
umrandung(wo,c1,c2,x,y,b,h);
umrandung(wo,c2,c1,x-2,y-1,b+4,h+2);
END;
PROCEDURE RefreshGadget;
VAR
g : p_Gadget;
BEGIN
g := was^.NextGadget;
was^.NextGadget := NIL;
RefreshGadgets(was,wo,req);
was^.NextGadget := g;
END;
BEGIN
Init_Image;
END.